<?php

class Application_Model_Campanhaenviar
{

	public function addCampanhaEnvio ($html,$idcampanha,$status)
    {
        $data = array(
        				'html' => $html, 
        				'idcampanha' => $idcampanha,
        				'status'=>$status
        			 );        
        $Tbcampanhaenviar = new Application_Model_DbTable_Campanhaenviar();
        $Tbcampanhaenviar->insert($data);
    }
    
   public function procuraCampanhaEnviar($idcampanha)
    {
    	$Tbcampanhaenviar = new Application_Model_DbTable_Campanhaenviar();
    	$select = $Tbcampanhaenviar->select()
    			->setIntegrityCheck(false)
	    		->from(array('c'=>'campanha_enviar'))
    			->where($Tbcampanhaenviar->getAdapter()->quoteInto('c.idcampanha=?', $idcampanha));
    	
       return $Tbcampanhaenviar->fetchAll($select)->toArray();
    }
    
   public function procuraCampanhaEnviarAtiva()
    {
    	$Tbcampanhaenviar = new Application_Model_DbTable_Campanhaenviar();
    	$select = "SELECT  
    					COUNT(c.idcampanha) AS total						   
					FROM 
						campanha c, campanha_enviar ce
					WHERE
						c.status = 1
						AND ce.status = 1
						AND ce.idcampanha = c.idcampanha";
    	
       return $Tbcampanhaenviar->getAdapter()->fetchAll($select);
    }
    
    public function envioDeCampanhaAtivo()
    {
    	$Tbcampanhaenviar = new Application_Model_DbTable_Campanhaenviar();
    	$select = $Tbcampanhaenviar->select()
    			->setIntegrityCheck(false)
	    		->from(array('c'=>'campanha_enviar'))
    			->where('c.status=2');
    	
       return $Tbcampanhaenviar->fetchRow($select);
    
    }
    
   public function listaAllCampanhaParaEnviar()
    {
    	$Tbcampanhaenviar = new Application_Model_DbTable_Campanhaenviar();
    	$select = "SELECT  c.idcampanha,
						   c.nome,
						   c.assunto,
						   c.remetente,
						   ce.html,
						   ce.idcampanha_enviar,  
						   TIMESTAMPDIFF(MINUTE,now(),c.dataenvio) AS diferenca
					FROM 
						campanha c, campanha_enviar ce
					WHERE 
						DATE_FORMAT(c.dataenvio,'%Y-%m-%d') = CURDATE() 
						AND TIMESTAMPDIFF(MINUTE,now(),c.dataenvio) <=0
						AND c.status = 1
						AND c.processado = 1
						AND ce.idcampanha = c.idcampanha
						ORDER BY diferenca ASC";
    	
       return $Tbcampanhaenviar->getAdapter()->fetchRow($select);
    }
    
    public function updateStatus($status,$idcampanhaEnviar)
    {
	    $campanha = new Application_Model_DbTable_Campanhaenviar();
	    $data = array('status'=>$status);
	    $where = $campanha->getAdapter()->quoteInto('idcampanha_enviar=?',$idcampanhaEnviar);
	    $campanha->update($data, $where);
    }
    public function delete($id)
    {
    	$campanha = new Application_Model_DbTable_Campanhaenviar();
    	$where = $campanha->getAdapter()->quoteInto('idcampanha=?',$id);
    	$campanha->delete($where);
    	
    }

}

